查看原文
其他

想学会 Spring Boot 你必须深刻了解这些概念

码农小胖哥 码农小胖哥 2020-10-17



1.0

前言


Spring Boot是一个难以理解的框架。在本文中,我们将了解Spring Boot的基础知识,并帮助您了解重要的概念-starter,自动配置和Parents。希望多多关注微信公众号:Felordcn


2.0

理解Spring Boot的架构


Spring Boot的构建基块是:

  • Spring Boot Starter

  • Spring Boot Starter Parent

  • Auto Configuration


我们将通过与Spring和Spring MVC进行比较来了解Spring Boot想要实现的目标。想了解了这一点,就应该从Spring Boot的构建基块入手。


3.0

Spring Boot并不与其他竞争


你必须要理解的是:Spring Boot并不与Spring、Spring MVC竞争。Spring Boot使得使用它们变得容易。


3.1

Spring Framework


它最重要的功能是依赖注入。所有Spring模块的核心是依赖注入或IOC(控制反转)。如果正确使用DI或IOC,我们可以开发松耦合的应用程序。松耦合的应用程序可以轻松地进行单元测试。


3.2

Spring MVC


Spring MVC提供了一种分离的方式来开发Web应用程序。通过使用Dispatcher Servlet,ModelAndView和View Resolver的特有简单概念,可以轻松开发Web应用程序。它是Spring框架在servlet web规范中的提现。


3.3

Spring Boot


Spring和Spring MVC的问题在于随着项目不断发展你需要维护大量各种各样诸如properties和xml类型的配置文件,bean描述文件。Spring Boot通过“约定大于配置”同时结合自动配置和入门项目解决了这个问题。Spring Boot还提供了一些功能,可以更快地构建可用于生产环境的应用程序。


4.0

Spring Boot自动配置


Spring和Spring MVC应用程序具有很多XML或Java Bean配置。每当开辟一些新的业务时你不得不增加你的配置。Spring Boot围绕这个痛点引入了新的思维过程:是否能让应用更加智能?当一个jar引入时能自动发现一些Spring Bean。 


  • 如果Hibernate JAR位于类路径中,如何自动配置数据源呢?

  • 如果Spring MVC JAR位于类路径中,如何自动配置Dispatcher Servlet呢?


Spring Boot 针对一些常用的框架进行了一些可自动发现的默认配置,也是使用这些框架必须的基本配置。这就是自动配置(Auto Configuration)。

5.0

Spring Boot Starter


什么是Spring Boot Starter?starter就是是一组便捷的依赖项描述符,您可以在应用程序中引入它们,获得一站式使用其所需的所有Spring和其他相关技术, 而不必去手动引入各种相关的依赖项。同时也不必担心依赖冲突和不兼容的问题。就像你需要一台V12发动机,不是店家直接给予你所有必须的一堆零件,而是一整台发动机。你不必关心它依赖了什么,原理是什么,只关心它有什么用。


以下屏幕快照显示了将Spring Boot Start Web添加到项目的依赖项时添加到我们的应用程序中的不同依赖项。![8a3776a072265c67990d9b51cc4e7f83.png](en-resource://database/3343:1)

这是通常用于开发Web应用程序的各种组件。如果让你手动引入想想都头皮发麻。Spring Boot Starter Web将它们组合在一起以便于让你以非常简单的开启Spring MVC Web开发并使用以下特性:


  • Spring  Bean、context\IOC、AOP

  • Web MVC — (Spring MVC)

  • Jackson — for JSON Binding

  • Validation — Hibernate Validator, Validation API

  • Embedded Servlet Container — Tomcat

  • Logging — logback, slf4j


Spring Boot 提供了很多有用的Starter,你可以在Spring Boot官网找到它们。当然你也可以自己写一个Starter,具体的教程可以通过我的公众号:Felordcn 获取。


6.0

Spring Boot Starter


所有Spring Boot项目通常在pom.xml中将spring-boot-starter-parent用作父项。


<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.8.RELEASE</version>
</parent>


Parent POM 提供了以下能力让你管理的应用:


  • 配置 ——诸如 java版本和其他一些组件的默认配置

  • 依赖管理 ——统一的依赖版本管理

  • 默认的插件配置。


7.0

Spring Initializr


[Spring Initializr](http://start.spring.io/) 是Spring官方提供的极速构建Spring Boot项目的可视化引导工具。


它使您可以通过非常简单的UI创建各种基于Spring Boot的应用程序。您可以按需选择构建编程语言、工具、版本,功能、Starter组件,甚至可以通过web来预览你构建的项目。你也可以通过Intellij IDEA 、eclipse等IDE提供的Spring Initializr集成工具来快速方便地构建Spring Boot 项目。


8.0

嵌入式WEB服务器


Spring Boot 集成了嵌入式服务器,使得我们的应用可部署单元包含了服务器二进制文件。目前提供了以下嵌入式服务器:


  • Jetty

  • Tomcat

  • Undertow


个人推荐性能更加强大的Undertow。


9.0

Spring Data数据访问


Spring 还提供了数据访问一致的基于Spring编程模型,同时保留了基础数据存储的抽象类库集合,常用的模块有:


  • Spring Date JDBC

  • Spring Data JPA

  • Spring Data Redis

  • Spring Data MongoDB

  • Spring Data Elasticsearch


这些类库都提供相应的Starter组件,还有其他一些类库,可以去官方网站查询。


 总结

通过以上的详细引导介绍,相信会让你对Spring Boot 有一个全面的认识。让你学习起来更加轻松。


● Java开发中商业计算请务必使用BigDecimal来进行计算!

● 彻底解决Spring mvc中时间类型的转换和序列化问题

● 高薪必备的一些Spring Boot高级面试题


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存